1. Field of the Invention
This invention relates generally to distributed software execution, and more particularly to a remote execution model that provides remote application launch and control.
2. Description of the Related Art
Software is used to perform daily tasks at a rapidly increasing rate. New software is therefore being developed at an even more increasing rate. Assessing software reliability through software testing has therefore become an imperative stage in software development cycle. Software testing finds and eliminates defects (i.e., bugs) in software, which if undetected, can cause the software to operate improperly. In general, a stand-alone computer or a network of computer resources can be used to perform software testing. When a stand-alone computer system is used to perform the software testing, the computer system is programmed to run a test selected by the software user. When a network of computer resources is used, the user must manually add and delete the computer resources to the network, program the master computer system and the server, initiate the running of a user-selected test, and run the test on the group of dedicated computer systems coupled to the server. A distributed testing of this sort presents launch and control problems, as described next with reference to FIG. 1.
FIG. 1 is a block diagram showing a prior art distributed test configuration 100. The distributed test configuration 100 includes several test systems 102a–102c, each executing a test application 104a–104c. During launch and subsequent execution, the distributed test configuration 100 cannot provide any control related to the launch and execution. That is, the user cannot control the launch order and execution of the test applications 104a–104c using the prior art distributed test configuration 100. As a result, errors can occur when the test applications depend on each other for proper execution.
For example, during a particular test, test application B 104b may depend on an output from or other interaction with test application A 104a. In particular, test application A 104a may need to access test application B 104b to perform a particular test. However, the prior art distributed test configuration 100 generally launches all the application simultaneously, or close to simultaneously. If test system A 102a processes test application A 104a faster than test system B 102b processes test application B 104b, then test application A 104a may attempt to establish communication before test application B 104b is ready to establish or receive the communication. In such a situation, the communication attempt will fail, and as a result, the test will fail.
Failure can also occur when an application depends on the output of another application. For example, test application C 104c may depend on data that is output from test application A 104a for proper execution. If test application C 104c attempts to use the data output from test application A 104a before test application A 104a has generated the requested data, then application C 104c can fail the test.
In addition, the prior art distributed test configuration 100 cannot perform multiple tests because the distributed test configuration 100 cannot control or abort the test applications 104a–c that are being executed. The prior art distributed test configuration 100 also cannot perform multiple tests also because each test must be manually programmed into the test systems 102a–c. 
In view of the foregoing, there is a need for a remote execution model for distributed application launch and control. The remote execution model should provide a mechanism for automated testing of multiple remote test applications. The remote execution model should also provide the facility for the test applications to interact and communicate and to provide control of the test applications.